package org.yenn.pattern.observer.weather5;

import lombok.Getter;

/**
 * @Author: yerenyun
 * @Description:
 */
public class ConcreteWeatherSubject extends WeatherSubject{
    //"晴天" "下雨" "下雪"
    //目标对象的状态
    @Getter
    private String weatherContent;

    @Override
    protected void notifyObservers() {
        // 循环所有注册的观察者
        this.observers.forEach(observer->{
            /*//规则：
            * 按照黄明的女朋友需要下雨的条件
                黄明的老妈需要下雨或者下雪的条件
            * */
            //如果天气是晴天
            //do nothing-.
            //如果天气是下雨
            if("下雨".equals(this.getWeatherContent())){
                if("黄明的女朋友".equals(observer.getObserverName())){
                    observer.update(this);
                }else if ("黄明的老妈".equals(observer.getObserverName())){
                    observer.update(this);
                }
            }
            //如果天气是下雪
            if("下雪".equals(this.getWeatherContent())){
                if ("黄明的老妈".equals(observer.getObserverName())){
                    observer.update(this);
                }
            }


        });
    }

    public void setWeatherContent(String weatherContent) {
        this.weatherContent = weatherContent;
        this.notifyObservers();
    }
}
